The present disclosure relates in general to web server management, and in particular to techniques for provisioning and decommissioning web servers in an automated manner.
In current practice, server resources for a web site are generally provisioned in a manual fashion. For example, in a typical deployment scenario, an administrator for a web site will estimate an average amount of traffic that the web site is expected to receive (e.g., ten thousand requests per day). The administrator will then manually provision a number of web servers for the web site based upon the estimate.
While the above approach is serviceable if the amount of traffic received by a web site is relatively stable, it can be problematic if the web site experiences spikes where the amount of traffic significantly exceeds or falls under the expected amount. For example, during times of extremely high traffic, the web servers provisioned for the web site can become so overloaded with requests that they fail to service all of the requests successfully. This can lead to denial of service for clients. As another example, during times of extremely low traffic, the web servers provisioned for the web site can become under-utilized, leading to a waste of server resources. To address these issues, an administrator of the web site can try to manually reconfigure the number of web servers provisioned for the web site when traffic spikes occur. However, such manual reconfiguration is cumbersome and typically cannot be performed quickly enough to completely avoid denial of service (at times of high traffic) or under-utilization of resources (at times of low traffic).
Accordingly, it is desirable to have improved techniques for provisioning server resources for a web site.